package com.sf.mysql.tool;

import com.sf.mysql.tool.utils.DBUtils;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import com.sf.mysql.tool.excel.WriteExcel;
import com.sf.mysql.tool.vo.TableVo;

import java.util.*;

/**
 * <code>
 * mysql 文档生成工具
 * 命令行主类
 * </code>
 *
 * @author Administrator
 * @date 2017-12-14上午9:43:44
 */
public final class CMDMysqlDGTool {

    private static final String fileName = "src\\main\\resources\\tableHead.xlsx";

    public static void main(String[] args) throws Exception {
//        testForWord2007(parameters);
//        Parameters parameters = new Parameters();
//        parameters.setDatabase("sgs_app_gpp");
//        parameters.setPath("D:\\temp\\");
//        parameters.setHost("10.202.4.39");
//        parameters.setPort("3307");
//        parameters.setUser("sgs_app_gpp");
//        parameters.setPassword("sgs_app_gpp");
          Parameters parameters = new Parameters();
        parameters.setDatabase("test");
        parameters.setPath("D:\\temp\\");
        parameters.setHost("10.202.7.82");
        parameters.setPort("3306");
        parameters.setUser("mycat");
        parameters.setPassword("mycat");
//
        DBUtils dbUtils = new DBUtils(parameters);

//        System.out.println(dbUtils.connectable());
        testForExcelTemp(parameters);

//        testForWord2007(parameters);
    }

    private static void testForExcelTemp(Parameters parameters)throws Exception{
        long startTime = System.currentTimeMillis();
        DBUtils dbUtils = new DBUtils(parameters);
        List<TableVo> tableVoList = dbUtils.getTableList();
        for(TableVo table : tableVoList) {
            List<List<String>> headList = WriteExcel.getHeadList(table.getTableName(),table.getTableComment());
            List<List<String>> bodyList = WriteExcel.getBodyList(table);
            headList.addAll(bodyList);
            System.out.println(headList);
            WriteExcel.inputExcelHead(headList,table.getTableName(),fileName);
        }
    }

    private static void printTable(){

    }

    private static void testForWord2007(Parameters parameters) throws Exception{
        long startTime = System.currentTimeMillis();
        DBUtils dbUtils = new DBUtils(parameters);

        Map<String, HashMap<String, LinkedHashMap<String, String>>> data = dbUtils.getDatabaseInfo();

        Word2007.productWordForm(data, parameters);

        long endTime = System.currentTimeMillis();
        System.out.println("总共用时:" + (endTime - startTime) + "ms");
    }

}
